package com.gcb.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.gcb.common.annotation.Excel;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;

@Data
public class OrderCargoVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 订单ID
     */
    private Long id;

    /**
     * 订单号
     */
    @Excel(name = "订单号")
    private String orderNo;

    /**
     * 始发港
     */
    @Excel(name = "始发港")
    private String originPortName;

    /**
     * 目的港
     */
    @Excel(name = "目的港")
    private String destPortName;

    /**
     * 货物名称
     */
    @Excel(name = "货物名称")
    private String cargoName;

    /**
     * 货物重量（吨）
     */
    @Excel(name = "货物重量（吨）")
    private String cargoWeight;

    /**
     * 装货日期
     */
    @Excel(name = "装货日期")
    private String cargoDate;

    /**
     * 浮动天数
     */
    @Excel(name = "浮动天数")
    private Integer floatingDays;

    /**
     * 价格类型
     */
    private Integer priceType;

    /**
     * 价格类型名称
     */
    @Excel(name = "价格类型")
    private String priceTypeStr;

    /**
     * 价格
     */
    @Excel(name = "价格")
    private String price;

    /**
     * 联系人
     */
    @Excel(name = "联系人")
    private String contacts;

    /**
     * 联系人手机号
     */
    @Excel(name = "联系人手机号")
    private String contactPhone;

    /**
     * 归属企业id
     */
    private Long companyId;

    /**
     * 归属企业名称
     */
    @Excel(name = "归属企业")
    private String companyName;

    /**
     * 归属运营商id
     */
    private Long operatorId;

    /**
     * 归属运营商名称
     */
    @Excel(name = "归属运营商")
    private String operatorName;

    /**
     * 状态
     */
    private Integer state;

    /**
     * 备注
     */
    private String remark;

    /**
     * 状态名称
     */
    @Excel(name = "订单状态")
    private String stateStr;

    /**
     * 创建类型
     */
    private Integer createType;

    /**
     * 创建类型名称
     */
    @Excel(name = "创建类型")
    private String createTypeStr;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 创建人
     */
    private Long createBy;

    /**
     * 创建人姓名
     */
    @Excel(name = "创建人")
    private String createName;

    /**
     * 创建人手机号
     */
    @Excel(name = "创建人手机号")
    private String createPhone;

    /**
     * 更新时间
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    /**
     * 更新人
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long updateBy;

    /**
     * 更新人姓名
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String updateName;

    /**
     * 更新人手机号
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String updatePhone;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date stopTime;

    /**
     * 取消时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date cancelTime;

    /**
     * 取消原因
     */
    private String cancelReason;
}

